Pythonć®Requestsć»ćć·ć§ć³ē®”ēćēæå¾ććå¹ēēćŖHTTPę„ē¶åå©ēØć§ććć©ć¼ćć³ć¹åäøćØé å»¶åęøćå®ē¾ćć¾ććć°ćć¼ćć«ć¢ććŖć±ć¼ć·ć§ć³åćć®ćć¹ććć©ćÆćć£ć¹ćå¦ć³ć¾ćććć
Requestsć»ćć·ć§ć³ē®”ēļ¼HTTPę„ē¶åå©ēØćēæå¾ććęé«ć®ććć©ć¼ćć³ć¹ćå®ē¾
ć¦ć§ćéēŗćØAPIé£ęŗć®äøēć§ćÆćå¹ēę§ćęćéč¦ć§ććå¤ę°ć®HTTPćŖćÆćØć¹ććę±ćéćę„ē¶ē®”ēćęé©åććććØć§ććć©ć¼ćć³ć¹ć«å¤§ććŖå½±éæćäøććåÆč½ę§ćććć¾ććPythonć®requestsć©ć¤ćć©ćŖćÆćć»ćć·ć§ć³ē®”ēćØå¼ć°ććå¼·åćŖę©č½ćęä¾ćć¦ćććHTTPę„ē¶ć®åå©ēØćåÆč½ć«ććććéćåæēęéćØćµć¼ćć¼č² č·ć®č»½ęøćććććć¾ćććć®čØäŗć§ćÆćRequestsć»ćć·ć§ć³ē®”ēć®č¤éććęćäøććć°ćć¼ćć«ć¢ććŖć±ć¼ć·ć§ć³ć§ćć®å©ē¹ćę“»ēØććććć®å
ę¬ēćŖć¬ć¤ććęä¾ćć¾ćć
HTTPę„ē¶åå©ēØćØćÆļ¼
HTTPę„ē¶åå©ēØćÆćHTTP Keep-AlivećØćå¼ć°ććåäøć®TCPę„ē¶äøć§č¤ę°ć®HTTPćŖćÆćØć¹ććØć¬ć¹ćć³ć¹ćéåäæ”ć§ććęč”ć§ććę„ē¶åå©ēØććŖćå “åćåćŖćÆćØć¹ććÆę°ććTCPę„ē¶ć®ē¢ŗē«ćåæ č¦ćØćććććÆćć³ćć·ć§ć¤ćÆć伓ćć貓éćŖęéćØćŖć½ć¼ć¹ćę¶č²»ćć¾ććę„ē¶ćåå©ēØććććØć§ćę„ē¶ćē¹°ćčæć確ē«ććć³åęćććŖć¼ćć¼ććććåéæć§ććē¹ć«å¤ćć®å°ććŖćŖćÆćØć¹ććč”ćå “åć«ćå¤§å¹ ćŖććć©ć¼ćć³ć¹åäøć«ć¤ćŖććć¾ćć
APIćØć³ććć¤ć³ććććć¼ćæćč¤ę°åćć§ććććåæ
č¦ćććć·ććŖćŖćčćć¦ćæć¾ććććę„ē¶åå©ēØććŖćå “åćåćć§ććć«ćÆåå„ć®ę„ē¶ćåæ
č¦ć§ććAlpha VantagećOpen Exchange Ratesć®ćććŖć°ćć¼ćć«éčAPIććé貨ęē®ć¬ć¼ćććć§ććććå “é¢ćę³åćć¦ćć ćććč¤ę°ć®é貨ćć¢ć®ć¬ć¼ććē¹°ćčæććć§ććććåæ
č¦ćććććććć¾ćććę„ē¶åå©ēØćå©ēØćććØćrequestsć©ć¤ćć©ćŖćę„ē¶ćē¶ęćććŖć¼ćć¼ćććć大å¹
ć«åęøć§ćć¾ćć
Requests SessionćŖććøć§ćÆćć®ē“¹ä»
requestsć©ć¤ćć©ćŖćÆćę„ē¶ćć¼ćŖć³ć°ćØåå©ēØćčŖåēć«å¦ēććSessionćŖććøć§ćÆććęä¾ćć¾ććSessionćŖććøć§ćÆććä½ęćććØćHTTPę„ē¶ć®ćć¼ć«ćē¶ęććåććć¹ććøć®å¾ē¶ć®ćŖćÆćØć¹ćć§ććććåå©ēØćć¾ććććć«ćććę„ē¶ćęåć§ē®”ēććććć»ć¹ćē°”ē“ åććććŖćÆćØć¹ććå¹ēēć«å¦ēćććććć«ćŖćć¾ćć
SessionćŖććøć§ćÆćć使ēØććåŗę¬ēćŖä¾ć仄äøć«ē¤ŗćć¾ćć
import requests
# Create a session object
session = requests.Session()
# Make a request using the session
response = session.get('https://www.example.com')
# Process the response
print(response.status_code)
print(response.content)
# Make another request to the same host
response = session.get('https://www.example.com/another_page')
# Process the response
print(response.status_code)
print(response.content)
# Close the session (optional, but recommended)
session.close()
ćć®ä¾ć§ćÆćSessionćŖććøć§ćÆććÆhttps://www.example.comćøć®äø”ę¹ć®ćŖćÆćØć¹ćć«åćę„ē¶ćåå©ēØćć¦ćć¾ććsession.close()ć”ć½ćććÆćć»ćć·ć§ć³ćę示ēć«éćććŖć½ć¼ć¹ćč§£ę¾ćć¾ććć»ćć·ć§ć³ćÆéåøøćć¬ćć¼ćøć³ć¬ćÆć·ć§ć³ęć«čŖåēć«ćÆćŖć¼ć³ć¢ććććć¾ćććē¹ć«é·ęéå®č”ćććć¢ććŖć±ć¼ć·ć§ć³ććŖć½ć¼ć¹ćéćććē°å¢ć§ćÆćć»ćć·ć§ć³ćę示ēć«éććććØćÆćŖć½ć¼ć¹ē®”ēć®ćć¹ććć©ćÆćć£ć¹ć§ćć
ć»ćć·ć§ć³ć使ēØććå©ē¹
- ććć©ć¼ćć³ć¹ć®åäøļ¼ę„ē¶ć®åå©ēØć«ćććē¹ć«åććć¹ćć«č¤ę°ć®ćŖćÆćØć¹ććč”ćć¢ććŖć±ć¼ć·ć§ć³ć«ććć¦ćć¬ć¤ćć³ć·ćēēø®ćććåæēęéćåäøćć¾ćć
- ć³ć¼ćć®ē°”ē“ åļ¼
SessionćŖććøć§ćÆććÆę„ē¶ē®”ēćē°”ē“ åććę„ē¶ć®č©³ē“°ćęåć§å¦ēććåæ č¦ććŖććŖćć¾ćć - Cookieć®ę°øē¶ę§ļ¼ć»ćć·ć§ć³ćÆCookiećčŖåēć«å¦ēććč¤ę°ć®ćŖćÆćØć¹ćéć§Cookiećäæęćć¾ćććććÆćWebć¢ććŖć±ć¼ć·ć§ć³ć§ē¶ę ćē¶ęććććć«äøåÆę¬ ć§ćć
- ććć©ć«ććććć¼ļ¼ć»ćć·ć§ć³å ć§č”ććććć¹ć¦ć®ćŖćÆćØć¹ćć«åƾćć¦ććć©ć«ććććć¼ćčØå®ć§ććäøč²«ę§ć確äæććć³ć¼ćć®éč¤ćęøććććØćć§ćć¾ćć
- ć³ććÆć·ć§ć³ćć¼ćŖć³ć°ļ¼RequestsćÆå éØēć«ć³ććÆć·ć§ć³ćć¼ćŖć³ć°ć使ēØćć¦ćććććć«ććę„ē¶ć®åå©ēØćććć«ęé©åććć¾ćć
ęé©ćŖććć©ć¼ćć³ć¹ć®ććć®ć»ćć·ć§ć³čØå®
SessionćŖććøć§ćÆććÆčŖåēćŖę„ē¶åå©ēØćęä¾ćć¾ćććē¹å®ć®ć·ććŖćŖć§ęé©ćŖććć©ć¼ćć³ć¹ćå¾ćććć«čØå®ć微調ę“ććććØćć§ćć¾ćć仄äøć«ććć¤ćć®äø»č¦ćŖčØå®ćŖćć·ć§ć³ć示ćć¾ćć
1. ć¢ćććæć¼
ć¢ćććæć¼ć使ēØćććØćrequestsćē°ćŖććććć³ć«ćć©ć®ććć«å¦ēććććć«ć¹ćæćć¤ćŗć§ćć¾ććrequestsć©ć¤ćć©ćŖć«ćÆHTTPćØHTTPSēØć®ēµćæč¾¼ćæć¢ćććæć¼ćå«ć¾ćć¦ćć¾ćććććå°éēćŖć·ććŖćŖć®ććć«ć«ć¹ćæć ć¢ćććæć¼ćä½ęććććØćć§ćć¾ććä¾ćć°ćē¹å®ć®SSL証ęęøć使ēØććććē¹å®ć®ćŖćÆćØć¹ćć«åƾćć¦ćććć·čØå®ćę§ęćććććććØćć§ćć¾ććć¢ćććæć¼ćÆćę„ē¶ć確ē«ććć³ē®”ēćććę¹ę³ć«ć¤ćć¦ä½ć¬ćć«ć®å¶å¾”ćęä¾ćć¾ćć
ć¢ćććæć¼ć使ēØćć¦ē¹å®ć®SSL証ęęøćę§ęććä¾ć仄äøć«ē¤ŗćć¾ćć
import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry
# Create a session object
session = requests.Session()
# Configure retry strategy
retries = Retry(total=5, backoff_factor=0.1, status_forcelist=[500, 502, 503, 504])
# Create an adapter with retry configuration
adapter = HTTPAdapter(max_retries=retries)
# Mount the adapter to the session for both HTTP and HTTPS
session.mount('http://', adapter)
session.mount('https://', adapter)
# Make a request using the session
try:
response = session.get('https://www.example.com')
response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)
# Process the response
print(response.status_code)
print(response.content)
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
# Close the session
session.close()
ćć®ä¾ć§ćÆćHTTPAdapterć使ēØćć¦ćŖćć©ć¤ę¦ē„ćę§ęćć¦ććć失ęćććŖćÆćØć¹ććčŖåēć«ćŖćć©ć¤ćć¾ćććććÆćäæ”é ¼ę§ć®ä½ćććććÆć¼ćÆę„ē¶ćäøęēćŖé害ćēŗēććåÆč½ę§ć®ćććµć¼ćć¹ćę±ćå “åć«ē¹ć«å½¹ē«ć”ć¾ććRetryćŖććøć§ćÆććÆćę大ćŖćć©ć¤åę°ććććÆćŖććć”ćÆćæć¼ćŖć©ć®ćŖćć©ć¤ćć©ć”ć¼ćæćå®ē¾©ćć¾ćć
2. ć³ććÆć·ć§ć³ćć¼ćŖć³ć°čØå® (pool_connections, pool_maxsize, max_retries)
requestsć©ć¤ćć©ćŖćÆćć³ććÆć·ć§ć³ćć¼ćŖć³ć°ć«urllib3ć使ēØćć¦ćć¾ććHTTPAdapterćéćć¦ććć¼ć«ćµć¤ćŗććć®ä»ć®ćć©ć”ć¼ćæćå¶å¾”ć§ćć¾ććpool_connectionsćć©ć”ć¼ćæćÆćć£ćć·ć„ććę„ē¶ć®ę°ćęå®ććpool_maxsizećć©ć”ć¼ćæćÆćć¼ć«å
ć«äæęććę大ę„ē¶ę°ćęå®ćć¾ćććććć®ćć©ć”ć¼ćæćé©åć«čØå®ććććØć§ćę°ććę„ē¶ćä½ęćććŖć¼ćć¼ććććåęøććććć©ć¼ćć³ć¹ćåäøćććććØćć§ćć¾ćć
åć®ä¾ć§ē¤ŗććććć«ćmax_retriesćć©ć”ć¼ćæćÆć失ęćććŖćÆćØć¹ććä½åćŖćć©ć¤ćć¹ćććčØå®ćć¾ćććććÆćäøęēćŖććććÆć¼ćÆćØć©ć¼ććµć¼ćć¼å“ć®åé”ćå¦ēććććć«ē¹ć«éč¦ć§ćć
ć³ććÆć·ć§ć³ćć¼ćŖć³ć°čØå®ć®ę§ęä¾ć仄äøć«ē¤ŗćć¾ćć
import requests
from requests.adapters import HTTPAdapter
from urllib3 import PoolManager
class SourceAddressAdapter(HTTPAdapter):
def __init__(self, source_address, **kwargs):
self.source_address = source_address
super(SourceAddressAdapter, self).__init__(**kwargs)
def init_poolmanager(self, connections, maxsize, block=False):
self.poolmanager = PoolManager(num_pools=connections,maxsize=maxsize,block=block, source_address=self.source_address)
# Create a session object
session = requests.Session()
# Configure connection pooling settings
adapter = SourceAddressAdapter(('192.168.1.100', 0), pool_connections=20, pool_maxsize=20)
session.mount('http://', adapter)
session.mount('https://', adapter)
# Make a request using the session
response = session.get('https://www.example.com')
# Process the response
print(response.status_code)
print(response.content)
# Close the session
session.close()
ćć®ä¾ć§ćÆćć³ććÆć·ć§ć³ćć¼ć«ć20åć®ę„ē¶ć使ēØććę大ćć¼ć«ćµć¤ćŗć20ć«ćŖćććć«čØå®ćć¦ćć¾ćććććć®å¤ć®čŖæę“ćÆćć¢ććŖć±ć¼ć·ć§ć³ćč”ćåęćŖćÆćØć¹ćć®ę°ćØćć·ć¹ćć ć§å©ēØåÆč½ćŖćŖć½ć¼ć¹ć«ćć£ć¦ē°ćŖćć¾ćć
3. ćæć¤ć ć¢ć¦ćčØå®
ćµć¼ćć¼ć®åæēćé
ććć¾ććÆå©ēØć§ććŖćå “åć«ćć¢ććŖć±ć¼ć·ć§ć³ćē”éć«ćć³ć°ć¢ććććć®ćé²ćććć«ćÆćé©åćŖćæć¤ć ć¢ć¦ććčØå®ććććØćäøåÆę¬ ć§ććrequestsć”ć½ććļ¼getćpostćŖć©ļ¼ć®timeoutćć©ć”ć¼ćæćÆććµć¼ćć¼ććć®åæēćå¾
ć¤ę大ęéćęå®ćć¾ćć
ćæć¤ć ć¢ć¦ććčØå®ććä¾ć仄äøć«ē¤ŗćć¾ćć
import requests
# Create a session object
session = requests.Session()
# Make a request with a timeout
try:
response = session.get('https://www.example.com', timeout=5)
# Process the response
print(response.status_code)
print(response.content)
except requests.exceptions.Timeout as e:
print(f"Request timed out: {e}")
# Close the session
session.close()
ćć®ä¾ć§ćÆććµć¼ćć¼ćåæēććŖćå “åććŖćÆćØć¹ććÆ5ē§å¾ć«ćæć¤ć ć¢ć¦ććć¾ććrequests.exceptions.Timeoutä¾å¤ćå¦ēććććØć§ććæć¤ć ć¢ć¦ćē¶ę³ćé©åć«å¦ēććć¢ććŖć±ć¼ć·ć§ć³ćććŖć¼ćŗććć®ćé²ćććØćć§ćć¾ćć
4. ććć©ć«ććććć¼ć®čØå®
ć»ćć·ć§ć³ć使ēØćććØććć®ć»ćć·ć§ć³ćéćć¦č”ććććć¹ć¦ć®ćŖćÆćØć¹ćć«å«ććććć©ć«ććććć¼ćčØå®ć§ćć¾ćććććÆćčŖčؼćć¼ćÆć³ćAPIćć¼ćć¾ććÆć«ć¹ćæć ć¦ć¼ć¶ć¼ćØć¼ćøć§ć³ććčØå®ććć®ć«å½¹ē«ć”ć¾ććććć©ć«ććććć¼ćčØå®ććććØć§ćäøč²«ę§ć確äæććć³ć¼ćć®éč¤ćęøććććØćć§ćć¾ćć
ććć©ć«ććććć¼ćčØå®ććä¾ć仄äøć«ē¤ŗćć¾ćć
import requests
# Create a session object
session = requests.Session()
# Set default headers
session.headers.update({
'Authorization': 'Bearer YOUR_API_KEY',
'User-Agent': 'MyCustomApp/1.0'
})
# Make a request using the session
response = session.get('https://www.example.com')
# Process the response
print(response.status_code)
print(response.content)
# Close the session
session.close()
ćć®ä¾ć§ćÆćć»ćć·ć§ć³ćéćć¦č”ććććć¹ć¦ć®ćŖćÆćØć¹ćć«Authorizationććć³User-Agentćććć¼ćå«ć¾ćć¾ććYOUR_API_KEYćå®éć®APIćć¼ć«ē½®ćęćć¦ćć ććć
ć»ćć·ć§ć³ć«ććCookieć®å¦ē
ć»ćć·ć§ć³ćÆCookiećčŖåēć«å¦ēććč¤ę°ć®ćŖćÆćØć¹ćéć§ććććäæęćć¾ćććććÆćčŖčؼćć¦ć¼ć¶ć¼ć»ćć·ć§ć³ć®čæ½č·”ć«Cookieć使ēØććWebć¢ććŖć±ć¼ć·ć§ć³ć§ē¶ę
ćē¶ęććććć«äøåÆę¬ ć§ćććµć¼ćć¼ćåæēć§Set-Cookiećććć¼ćéäæ”ćććØćć»ćć·ć§ć³ćÆCookiećäæåććåććć”ć¤ć³ćøć®å¾ē¶ć®ćŖćÆćØć¹ćć«ćććå«ćć¾ćć
ć»ćć·ć§ć³ćCookiećå¦ēććę¹ę³ć®ä¾ć仄äøć«ē¤ŗćć¾ćć
import requests
# Create a session object
session = requests.Session()
# Make a request to a site that sets cookies
response = session.get('https://www.example.com/login')
# Print the cookies set by the server
print(session.cookies.get_dict())
# Make another request to the same site
response = session.get('https://www.example.com/profile')
# The cookies are automatically included in this request
print(response.status_code)
# Close the session
session.close()
ćć®ä¾ć§ćÆćć»ćć·ć§ć³ćÆhttps://www.example.com/loginć«ćć£ć¦čØå®ćććCookiećčŖåēć«äæåććhttps://www.example.com/profilećøć®å¾ē¶ć®ćŖćÆćØć¹ćć«å«ćć¾ćć
ć»ćć·ć§ć³ē®”ēć®ćć¹ććć©ćÆćć£ć¹
- č¤ę°ć®ćŖćÆćØć¹ćć«ćÆć»ćć·ć§ć³ć使ēØććļ¼åććć¹ćć«č¤ę°ć®ćŖćÆćØć¹ććč”ćå “åćÆćåøøć«
SessionćŖććøć§ćÆćć使ēØćć¦ćć ćććććć«ćććę„ē¶ć®åå©ēØćäæčؼćććććć©ć¼ćć³ć¹ćåäøćć¾ćć - ć»ćć·ć§ć³ćę示ēć«éććļ¼ć»ćć·ć§ć³ć®ä½æēØćēµćć£ććć
session.close()ć使ēØćć¦ę示ēć«ć»ćć·ć§ć³ćéćć¾ććććć«ććććŖć½ć¼ć¹ćč§£ę¾ćććę„ē¶ćŖć¼ćÆć«ććę½åØēćŖåé”ćé²ę¢ććć¾ćć - ē¹å®ć®ćć¼ćŗć«åććć¦ć¢ćććæć¼ćę§ęććļ¼ć¢ćććæć¼ć使ēØćć¦ć
requestsćē°ćŖććććć³ć«ćå¦ēććę¹ę³ćć«ć¹ćæćć¤ćŗććęé©ćŖććć©ć¼ćć³ć¹ć®ććć«ć³ććÆć·ć§ć³ćć¼ćŖć³ć°čØå®ćę§ęćć¾ćć - ćæć¤ć ć¢ć¦ććčØå®ććļ¼ćµć¼ćć¼ć®åæēćé ććć¾ććÆå©ēØć§ććŖćå “åć«ćć¢ććŖć±ć¼ć·ć§ć³ćē”éć«ćć³ć°ć¢ććććć®ćé²ćććć«ćåøøć«ćæć¤ć ć¢ć¦ććčØå®ćć¦ćć ććć
- ä¾å¤ćå¦ēććļ¼
requests.exceptions.RequestExceptionćrequests.exceptions.TimeoutćŖć©ć®ä¾å¤ćé©åć«å¦ēćććØć©ć¼ćé©åć«å¦ēćć¦ćć¢ććŖć±ć¼ć·ć§ć³ć®ćÆć©ćć·ć„ćé²ćć¾ćć - ć¹ć¬ććć»ć¼ććć£ćčę
®ććļ¼
SessionćŖććøć§ćÆććÆäøč¬ēć«ć¹ć¬ććć»ć¼ćć§ćććé©åćŖåęćŖćć«č¤ę°ć®ć¹ć¬ććéć§åćć»ćć·ć§ć³ćå ±ęććććØćÆéæćć¦ćć ćććåć¹ć¬ććć«åå„ć®ć»ćć·ć§ć³ćä½ęććććć¹ć¬ććć»ć¼ććŖć³ććÆć·ć§ć³ćć¼ć«ć使ēØććććØćę¤čØćć¦ćć ććć - ć³ććÆć·ć§ć³ćć¼ć«ć®ä½æēØē¶ę³ćē£č¦ććļ¼ć³ććÆć·ć§ć³ćć¼ć«ć®ä½æēØē¶ę³ćē£č¦ćć¦ćę½åØēćŖććć«ćććÆćē¹å®ććććć«åæćć¦ćć¼ć«ćµć¤ćŗćčŖæę“ćć¾ćć
- ę°øē¶ć»ćć·ć§ć³ć使ēØććļ¼é·ęéå®č”ćććć¢ććŖć±ć¼ć·ć§ć³ć®å “åćę„ē¶ę å ±ććć£ć¹ćÆć«äæåććę°øē¶ć»ćć·ć§ć³ć®ä½æēØćę¤čØćć¦ćć ćććććć«ćććć¢ććŖć±ć¼ć·ć§ć³ćÆåčµ·åå¾ć«ę„ē¶ćåéć§ćć¾ćććć ććć»ćć„ćŖćć£äøć®å½±éæć«ę³Øęććę°øē¶ć»ćć·ć§ć³ć«äæåćććę©åÆćć¼ćæćäæč·ćć¦ćć ććć
é«åŗ¦ćŖć»ćć·ć§ć³ē®”ēććÆćććÆ
1. ć³ć³ććć¹ćććć¼ćøć£ć¼ć®ä½æēØ
SessionćŖććøć§ćÆććÆć³ć³ććć¹ćććć¼ćøć£ć¼ćØćć¦ä½æēØć§ććwithććććÆćēµäŗćććØć»ćć·ć§ć³ćčŖåēć«éććććććØćäæčؼćć¾ććććć«ććććŖć½ć¼ć¹ē®”ēćē°”ē“ åćććć»ćć·ć§ć³ćéćåæćććŖć¹ćÆć軽ęøććć¾ćć
import requests
# Use the session as a context manager
with requests.Session() as session:
# Make a request using the session
response = session.get('https://www.example.com')
# Process the response
print(response.status_code)
print(response.content)
# The session is automatically closed when the 'with' block is exited
2. ćććÆćŖćä»ćć»ćć·ć§ć³ćŖćć©ć¤
ęę°ćććÆćŖćä»ććŖćć©ć¤ćå®č£ ććććØć§ćäøęēćŖććććÆć¼ćÆćØć©ć¼ćććé©åć«å¦ēć§ćć¾ćććććÆććŖćć©ć¤éć®é å»¶ćå¢ćććŖćć失ęćććŖćÆćØć¹ććå試č”ććććØć§ććµć¼ćć¼ćøć®č² č·ć軽ęøććęåć®åÆč½ę§ćé«ćććć®ć§ćć
import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry
# Create a session object
session = requests.Session()
# Configure retry strategy
retries = Retry(total=5, backoff_factor=0.1, status_forcelist=[500, 502, 503, 504])
# Create an adapter with retry configuration
adapter = HTTPAdapter(max_retries=retries)
# Mount the adapter to the session for both HTTP and HTTPS
session.mount('http://', adapter)
session.mount('https://', adapter)
# Make a request using the session
try:
response = session.get('https://www.example.com')
response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)
# Process the response
print(response.status_code)
print(response.content)
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
# The session is automatically closed when the 'with' block is exited (if not using context manager)
session.close()
3. ć»ćć·ć§ć³ć使ēØććéåęćŖćÆćØć¹ć
é«ę§č½ćŖć¢ććŖć±ć¼ć·ć§ć³ć§ćÆćéåęćŖćÆćØć¹ćć使ēØćć¦č¤ę°ć®ćŖćÆćØć¹ććåęć«č”ćććØćć§ćć¾ćććććÆćč¤ę°ć®APIćććć¼ćæćåęć«åå¾ćććŖć©ć®I/Oćć¦ć³ććŖćæć¹ćÆćę±ćå “åć«ćććć©ć¼ćć³ć¹ć大å¹
ć«åäøćććććØćć§ćć¾ććrequestsć©ć¤ćć©ćŖčŖä½ćÆåęć§ćććasyncioćaiohttpćŖć©ć®éåęć©ć¤ćć©ćŖćØēµćæåćććććØć§ćéåęć®åä½ćå®ē¾ć§ćć¾ćć
ć»ćć·ć§ć³ćØ`aiohttp`ć使ēØćć¦éåęćŖćÆćØć¹ććč”ćä¾ć仄äøć«ē¤ŗćć¾ćć
import asyncio
import aiohttp
async def fetch_url(session, url):
try:
async with session.get(url) as response:
return await response.text()
except Exception as e:
print(f"Error fetching {url}: {e}")
return None
async def main():
async with aiohttp.ClientSession() as session:
urls = [
'https://www.example.com',
'https://www.google.com',
'https://www.python.org'
]
tasks = [fetch_url(session, url) for url in urls]
results = await asyncio.gather(*tasks)
for i, result in enumerate(results):
if result:
print(f"Content from {urls[i]}: {result[:100]}...")
else:
print(f"Failed to fetch {urls[i]}")
if __name__ == "__main__":
asyncio.run(main())
ć»ćć·ć§ć³ē®”ēć®åé”ć®ćć©ćć«ć·ć„ć¼ćć£ć³ć°
ć»ćć·ć§ć³ē®”ēćÆHTTPę„ē¶ć®åå©ēØćē°”ē“ åćć¾ćććē¹å®ć®ć·ććŖćŖć§åé”ć«ééććåÆč½ę§ćććć¾ćć仄äøć«ćäøč¬ēćŖåé”ćØćć®č§£ę±ŗēćććć¤ć示ćć¾ćć
- ę„ē¶ćØć©ć¼ļ¼
ConnectionErrorćMax retries exceededćŖć©ć®ę„ē¶ćØć©ć¼ćēŗēććå “åćÆćććććÆć¼ćÆę„ē¶ććć”ć¤ć¢ć¦ć©ć¼ć«čØå®ćććć³ćµć¼ćć¼ć®åÆēØę§ć確čŖćć¦ćć ćććć¢ććŖć±ć¼ć·ć§ć³ććæć¼ć²ćććć¹ćć«å°éć§ććććØć確čŖćć¦ćć ććć - ćæć¤ć ć¢ć¦ććØć©ć¼ļ¼ćæć¤ć ć¢ć¦ććØć©ć¼ćēŗēććå “åćÆććæć¤ć ć¢ć¦ćå¤ćå¢ććććåæēå¦ēć«ćććęéćēēø®ććććć«ć³ć¼ććęé©åćć¦ćć ćććć”ć¤ć³ć¹ć¬ćććććććÆććŖćććć«ćéåęćŖćÆćØć¹ćć®ä½æēØćę¤čØćć¦ćć ććć
- Cookieć®åé”ļ¼Cookiećę°øē¶åćććŖććć¾ććÆę£ććéäæ”ćććŖćåé”ćēŗēććå “åćÆćCookieć®čØå®ććć”ć¤ć³ćććć³ćć¹ć確čŖćć¦ćć ććććµć¼ćć¼ćCookiećę£ććčØå®ćć¦ććććć¢ććŖć±ć¼ć·ć§ć³ćććććé©åć«å¦ēćć¦ććććØć確čŖćć¦ćć ććć
- ć”ć¢ćŖćŖć¼ćÆļ¼ć”ć¢ćŖćŖć¼ćÆćēŗēććå “åćÆćć»ćć·ć§ć³ćę示ēć«éćććŖć½ć¼ć¹ćé©åć«č§£ę¾ćć¦ććććØć確čŖćć¦ćć ćććć¢ććŖć±ć¼ć·ć§ć³ć®ć”ć¢ćŖä½æēØéćē£č¦ćć¦ćę½åØēćŖåé”ćē¹å®ćć¦ćć ććć
- SSL証ęęøćØć©ć¼ļ¼SSL証ęęøćØć©ć¼ćēŗēććå “åćÆćę£ććSSL証ęęøćć¤ć³ć¹ćć¼ć«ććć³ę§ęććć¦ććććØć確čŖćć¦ćć ććććć¹ćē®ēć§SSL証ęęøć®ę¤čؼćē”å¹ć«ććććØćć§ćć¾ććććććÆę¬ēŖē°å¢ć§ćÆęØå„Øććć¾ććć
ć»ćć·ć§ć³ē®”ēć«ćććć°ćć¼ćć«ćŖčę ®äŗé
- å°ēēä½ē½®ļ¼ć¢ććŖć±ć¼ć·ć§ć³ćØćµć¼ćć¼éć®ē©ēēćŖč·é¢ćÆćć¬ć¤ćć³ć·ć«å¤§ććå½±éæććåÆč½ę§ćććć¾ććē°ćŖćå°ēēå°åć®ć¦ć¼ć¶ć¼ć«ććčæćå “ęć«ć³ć³ćć³ćććć£ćć·ć„ććććć«ćContent Delivery Networkļ¼CDNļ¼ć®ä½æēØćę¤čØćć¦ćć ććć
- ććććÆć¼ćÆē¶ę³ļ¼åøÆåå¹ ććć±ććę失ćŖć©ć®ććććÆć¼ćÆē¶ę³ćÆćå°åć«ćć£ć¦å¤§ććē°ćŖćåÆč½ę§ćććć¾ććå£ęŖćŖććććÆć¼ćÆē¶ę³ćé©åć«å¦ēććććć«ć¢ććŖć±ć¼ć·ć§ć³ćęé©åćć¦ćć ććć
- ćæć¤ć ć¾ć¼ć³ļ¼Cookiećć»ćć·ć§ć³ć®ęå¹ęéćę±ćéć«ćÆććæć¤ć ć¾ć¼ć³ć«ę³Øęćć¦ćć ććććæć¤ć ć¾ć¼ć³å¤ęć«ććåé”ćåéæććććć«ćUTCćæć¤ć ć¹ćæć³ćć使ēØćć¦ćć ććć
- ćć¼ćæćć©ć¤ćć·ć¼č¦å¶ļ¼GDPRćCCPAćŖć©ć®ćć¼ćæćć©ć¤ćć·ć¼č¦å¶ć«ę³Øęććć¢ććŖć±ć¼ć·ć§ć³ććććć®č¦å¶ć«ęŗę ćć¦ććććØć確čŖćć¦ćć ćććCookiećć»ćć·ć§ć³ć«äæåćććę©åÆćć¼ćæćäæč·ćć¦ćć ććć
- ćć¼ć«ć©ć¤ć¼ć¼ć·ć§ć³ļ¼ē°ćŖćčØčŖćęåććµćć¼ćććććć«ćć¢ććŖć±ć¼ć·ć§ć³ć®ćć¼ć«ć©ć¤ć¼ć¼ć·ć§ć³ćę¤čØćć¦ćć ćććććć«ćÆććØć©ć¼ć”ćć»ć¼ćøć®ēæ»čسćććć¼ć«ć©ć¤ćŗćććCookieåęéē„ć®ęä¾ćå«ć¾ćć¾ćć
ēµč«
Requestsć»ćć·ć§ć³ē®”ēćÆćHTTPę„ē¶ć®åå©ēØćęé©åććć¢ććŖć±ć¼ć·ć§ć³ć®ććć©ć¼ćć³ć¹ćåäøćććććć®å¼·åćŖććÆćććÆć§ććć»ćć·ć§ć³ćŖććøć§ćÆććć¢ćććæć¼ćć³ććÆć·ć§ć³ćć¼ćŖć³ć°ććć®ä»ć®ę§ęćŖćć·ć§ć³ć®č¤éććēč§£ććććØć§ććć¾ćć¾ćŖć·ććŖćŖć§ć¢ććŖć±ć¼ć·ć§ć³ćęé©ćŖććć©ć¼ćć³ć¹ć«å¾®čŖæę“ć§ćć¾ććć»ćć·ć§ć³ē®”ēć®ćć¹ććć©ćÆćć£ć¹ć«å¾ććäøēäøć®ć¦ć¼ć¶ć¼åćć®ć¢ććŖć±ć¼ć·ć§ć³ćéēŗććéć«ćÆć°ćć¼ćć«ćŖč¦å ćčę ®ććććØćåæććŖćć§ćć ćććć»ćć·ć§ć³ē®”ēćēæå¾ććććØć§ćććé«éć§å¹ēēććć¤ć¹ć±ć¼ć©ćć«ćŖć¢ććŖć±ć¼ć·ć§ć³ćę§ēÆććććčÆćć¦ć¼ć¶ć¼ćØćÆć¹ććŖćØć³ć¹ćęä¾ć§ćć¾ćć
requestsć©ć¤ćć©ćŖć®ć»ćć·ć§ć³ē®”ēę©č½ćę“»ēØććććØć§ćéēŗč
ćÆć¬ć¤ćć³ć·ć大å¹
ć«åęøćććµć¼ćć¼č² č·ćęå°éć«ęććć°ćć¼ćć«å±éćØå¤ę§ćŖć¦ć¼ć¶ć¼ćć¼ć¹ć«é©ććå
ē¢ć§é«ę§č½ćŖć¢ććŖć±ć¼ć·ć§ć³ćä½ęć§ćć¾ćć